iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
Modern Web

Ben 的學習網系列 第 12

第12天 - 課程_編輯字幕

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230926/20162141atTGlPsWaQ.jpg

https://ithelp.ithome.com.tw/upload/images/20230926/20162141OUz1g1PamZ.jpg

系統功能

系統針對字幕提供有「編輯模式」。
1. 有個「編輯字幕」檢核盒,
a. 預設沒有打勾即為「唯讀觀看模式」,並有一個「讀取字幕」按鈕,如果點選此按鈕,即可開始本地電腦的字幕檔案,並載入此檔案的字幕。
b. 打勾即為「編輯模式」,會出現「插入上列」,「刪除此列」,「儲存字幕」,「讀取字幕」按鈕。按了「插入上列」會在目前游標列上面新增一空白列,按了「刪除此列」會刪除目前游標列,按了「儲存字幕」會把目前表格內容存成字幕檔。按了「讀取字幕」按鈕,即可開始本地電腦的字幕檔案,並載入此檔案的字幕。
c. 在「編輯模式」下,表格會多出現「開始」和「結束」欄,點選這兩個欄位,系統會自動在表格內容填入目前影片所在的時間,點選表格內的字幕欄位的內容,可以編輯字幕

技術手法

1. 插入上列
    insBtn = document.createElement("button");
    insBtn.innerText = "插入上列";
    insBtn.classList.add("myButton");
    insBtn.onclick = function () {
        insertTableRow(autoRowSelected);
        resetTableNum();
        var nowTableContent = getTableContent();
        setSubtitles(nowTableContent);
    };
    messageDiv.appendChild(insBtn);

2. 刪除此列

    delBtn = document.createElement("button");
    delBtn.innerText = "刪除此列";
    delBtn.classList.add("myButton");
    delBtn.onclick = function () {
        rowSelected.remove();
        resetTableNum();
        var nowTableContent = getTableContent();
        setSubtitles(nowTableContent);
    };
    messageDiv.appendChild(delBtn);

3. 儲存字幕
    saveBtn = document.createElement("button");
    saveBtn.innerText = "儲存字幕";
    saveBtn.classList.add("myButton");
    saveBtn.onclick = function () {
        saveTableContent();
    };
    messageDiv.appendChild(saveBtn);


4. 讀取字幕
    readBtn = document.createElement("button");
    readBtn.innerText = "讀取字幕";
    readBtn.classList.add("myButton");
    readBtn.onclick = function () {
        readTableContent(isMedia);
    };
    if (windowWidth > 600) {
        messageDiv.appendChild(readBtn);
    }

表格插入一列
	function insertTableRow(insNum) {
	    var table = document.getElementById("my_audio_table");
	    var rNew = table.insertRow(insNum);
	    rNew.setAttribute("class", "audio_table_row");
	    //1.行號
	    var cNew = rNew.insertCell(-1);
	    cNew.innerHTML = insNum;
	    //2.開始時間
	    cNew = rNew.insertCell(-1);
	    if (insNum > 1) {
	        cNew.innerHTML = table.rows[insNum - 1].cells[2].innerText;
	    }
	    cNew.onclick = function () {
	        setSubtitleTime(this, 1);
	    };
	    //3.結束時間
	    cNew = rNew.insertCell(-1);
	    if (insNum < table.rows.length - 1) {
	        cNew.innerHTML = table.rows[insNum + 1].cells[1].innerText;
	    }
	    cNew.onclick = function () {
	        setSubtitleTime(this, 2);
	    };
	    //4.句子1
	    cNew = rNew.insertCell(-1);
	    cNew.onclick = function () {
	        selectRow(this, 3);
	    };
	    cNew.onkeyup = function () {
	        changeRow(this);
	    };
	    cNew.setAttribute("contenteditable", "true");
	    //5.句子2
	    if (subtitleMode.includes("DoubleSrt") || subtitleMode.includes("MD4")) {
	        cNew = rNew.insertCell(-1);
	        cNew.onclick = function () {
	            selectRow(this, 4);
	        };
	        cNew.onkeyup = function () {
	            changeRow(this);
	        };
	        cNew.setAttribute("contenteditable", "true");
	        if (subtitleMode.includes("MD4")) {
	            cNew = rNew.insertCell(-1);
	            cNew.onclick = function () {
	                selectRow(this, 5);
	            };
	            cNew.onkeyup = function () {
	                changeRow(this);
	            };
	            cNew.setAttribute("contenteditable", "true");
	            cNew = rNew.insertCell(-1);
	            cNew.onclick = function () {
	                selectRow(this, 6);
	            };
	            cNew.onkeyup = function () {
	                changeRow(this);
	            };
	            cNew.setAttribute("contenteditable", "true");
	        }
	    }
	}
	

語文學習12-規則與請求

1. 去韓國人用餐要注意什麼?要注意餐桌禮儀
2. 在捷運上要注意什麼?要注意不能在捷運上吃東西
3. 可以幫我把冷氣開強一點嗎?好,我幫你調整
4. 〖詞組〗禁忌事項

上一篇
第11天 - 課程_英語_發音_Audio
下一篇
第13天 - 測驗_元件_計時器
系列文
Ben 的學習網30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言